import os

import pandas as pd


def main(file_path):
    # 读取Excel文件
    df = pd.read_excel(file_path)
    directory = os.path.dirname(file_path)  # 文件所在文件夹路径
    filename = os.path.basename(file_path)  # 文件名
    # 列名
    columns = df.columns

    # 创建一个空的DataFrame来存储拆分后的数据
    new_df = pd.DataFrame()
    # 创建一个空的DataFrame来存储拆分后的数据
    new_rows = []
    # 遍历原始DataFrame的每一行
    for index, row in df.iterrows():
        # 遍历每个加分项
        for i in range(6, len(columns) - 6, 3):
            # 提取加分摘要、加分分值
            summary_col = columns[i]
            value_col = columns[i + 1]

            if pd.notna(row[summary_col]) and pd.notna(row[value_col]):
                # 创建新的行数据
                new_row = {
                    # '提交时间（自动）': row['提交时间（自动）'],
                    # '姓名（必填）': row['姓名（必填）'],
                    '学号': row['学号（必填）'],
                    'year': '2023-2024',
                    'type': filename[4:6],
                    # '班级（必填）': row['班级（必填）'],
                    # '原始加分': row['原始加分'],
                    # '总德育加分': row['总德育加分'],
                    '加分摘要': row[summary_col],
                    '加分分值': f'+{row[value_col]}' if row[value_col] > 0 else str(row[value_col]),
                    # '加分证明': row[proof_col],
                    # '提交者（自动）': row['提交者（自动）'],
                    # '最后编辑人': row['最后编辑人'],
                    # '最后编辑时间': row['最后编辑时间'],
                    # '自查': row['自查'],
                    # '互查': row['互查'],
                }
                # 将新行数据添加到列表
                new_rows.append(new_row)

            # 创建新的DataFrame
        new_df = pd.DataFrame(new_rows)

    # 将拆分后的数据保存为新的Excel文件
    new_file_path = f'/Users/lidaoyu/Downloads/{filename}（已拆分）.xlsx'
    new_df.to_excel(new_file_path, index=False)


if __name__ == '__main__':
    paths = [
        # '/Users/lidaoyu/Desktop/工作/计通学院2020/1.年级分会/1.年级工作/22.毕业综测/原始加分材料/毕业综测德育加分材料（收集结果）.xlsx',
        '/Users/lidaoyu/Desktop/工作/计通学院2020/1.年级分会/1.年级工作/22.毕业综测/原始加分材料/毕业综测体育加分材料（收集结果）.xlsx',
    ]
    for path in paths:
        main(path)
